{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.067732</td>\n",
       "      <td>3.176513</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.427810</td>\n",
       "      <td>3.816464</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.995731</td>\n",
       "      <td>4.550095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.738336</td>\n",
       "      <td>4.256571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.981083</td>\n",
       "      <td>4.560815</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     0         1         2\n",
       "0  1.0  0.067732  3.176513\n",
       "1  1.0  0.427810  3.816464\n",
       "2  1.0  0.995731  4.550095\n",
       "3  1.0  0.738336  4.256571\n",
       "4  1.0  0.981083  4.560815"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ex0=pd.read_table('ex0.txt',header=None)\n",
    "ex0.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_mat(df):\n",
    "    xMat = np.mat(df.iloc[:,:-1])\n",
    "    yMat = np.mat(df.iloc[:,-1]).T\n",
    "\n",
    "    return xMat,yMat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_df(df):\n",
    "    xMat,yMat= get_mat(df)\n",
    "    plt.scatter(xMat.A[:,1],yMat.A,c='r',s=5)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def stand_regression(df):\n",
    "    xMat,yMat = get_mat(df)\n",
    "    xTx = xMat.T*xMat\n",
    "    if np.linalg.det(xTx) ==0:\n",
    "        print('奇异矩阵，无法求逆')\n",
    "        return\n",
    "    \n",
    "    ws = xTx.I *(xMat.T * yMat)\n",
    "    return ws"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[3.00774324],\n",
       "        [1.69532264]])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stand_regression(ex0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plotReg(df):\n",
    "    xMat,yMat = get_mat(df)\n",
    "    plt.scatter(xMat.A[:,1],yMat.A,c='r',s=5)\n",
    "    ws = stand_regression(df)\n",
    "    yHat = xMat *ws\n",
    "    plt.plot(xMat[:,1],yHat,c='g')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plotReg(ex0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def lwlr(testMat,xMat,yMat,k=1.0):\n",
    "    n = testMat.shape[0]\n",
    "    m = xMat.shape[0]\n",
    "    w = np.mat(np.eye(m))\n",
    "    yHat = np.zeros(n)\n",
    "\n",
    "    for i in range(n):\n",
    "        for j in range(m):\n",
    "            diffMat = testMat[i] - xMat[j]\n",
    "            w[j,j] = np.exp(diffMat*diffMat.T/(-2*k**2))\n",
    "        xTx = xMat.T*(w*xMat)\n",
    "        if np.linalg.det(xTx) == 0:\n",
    "            print(\"奇异矩阵无法求逆\")\n",
    "            return\n",
    "        ws = xTx.I * (xMat.T*(w*yMat))\n",
    "        yHat[i] = testMat[i] * ws\n",
    "    return ws,yHat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def pl_lwlr(df,k=1.0):\n",
    "    xMat,yMat = get_mat(df)\n",
    "    srtInd = xMat[:,1].argsort(0)\n",
    "    xSort = xMat[srtInd][:,0]\n",
    "\n",
    "    _,yHat = lwlr(xMat,xMat,yMat,k)\n",
    "\n",
    "    fig = plt.figure(figsize=(10,8),dpi=100)\n",
    "    fig1 =fig.add_subplot(111)\n",
    "    plt.scatter(xMat.A[:,1],yMat.A,c='r',s=5)\n",
    "    plt.plot(xSort[:,1],yHat[srtInd],linewidth=1,c='b')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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N68GKlSiiuezs3DhQt544w26d+/OpEmTWLBgAZdffjlr1qxhwIABNVG2EkQ8n58zzzyTn3/+mezsbKLRKJFIhEsvvdSpa9qssr435+fn88cff9CoUaOQKqsla3SksAwbNoyxY8cyYcIEGjZsGHY5SnDLly/n7LPPZtSoUWyzzTZhl6MkU1RURPPmzXnkkUfYf//9Of3007nxxht5+OGHwy5NSWDmzJnk5uby0EMPMWfOHF588UVee+01brnllrBLk+KW8iM622yzDXXr1uWnn34qcfynn35i2223LfUx2267bUznK3XF8/lZ584772TYsGFMnz6djh07VmeZSlCxfn6+/vprvv32W0444YT1x4qKigBIT0/niy++oG3bttVbtBJCPL97WrZsSb169ahbt+76Y3vssQdLlixh9erV1K9fv1prVuKI5/Nz8803c/bZZ3PhhRcCsNdee7FixQouvvhibrzxRurU8d/GVbqyvjdnZGSEOpoDtWBEp379+uy///7MmDFj/bGioiJmzJhBVlZWqY/JysoqcT7AtGnTyjxfqSuezw/A7bffzi233MLrr7/OAQccUBOlKgHF+vnZfffdmT9/PvPmzVt/OfHEE9d3smndunVNlq8QxfO755BDDmHBggXrwzHAl19+ScuWLQ05tUw8n5+VK1duEmbWheZoNFp9xSrpJfT35rC7IdSEsWPHRhs0aBB94oknov/617+iF198cXTLLbeMLlmyJBqNRqNnn312tG/fvuvPf/fdd6Pp6enRO++8M/rvf/87OmDAgGi9evWi8+fPD+stKESxfn6GDRsWrV+/fnT8+PHRxYsXr78sX748rLegEMX6+dmYXddqr1g/O4sWLYo2bdo0esUVV0S/+OKL6Kuvvhpt3rx59NZbbw3rLShEsX5+BgwYEG3atGn02WefjS5cuDA6derUaNu2baOnnXZaWG9BIVm+fHl07ty50blz50aB6N133x2dO3du9LvvvotGo9Fo3759o2efffb68xcuXBjdYostotdff3303//+d3T48OHRunXrRl9//fWw3sJ6tSLoRKPR6AMPPBDdYYcdovXr148eeOCB0ffff3/9fYcffnj0nHPOKXH+888/H911112j9evXj+65557R1157rYYrViKJ5fOz4447RoFNLgMGDKj5wpUQYv39U5xBp3aL9bPz3nvvRQ866KBogwYNom3atIkOGTIkGolEarhqJYpYPj9r1qyJDhw4MNq2bdtow4YNo61bt45efvnl0f/97381X7hC9eabb5b6PWbd5+Wcc86JHn744Zs8Zp999onWr18/2qZNm+jjjz9e43WXJi0adTxSkiRJUmpJ+TU6kiRJkmofg44kSZKklGPQkSRJkpRyDDqSJEmSUo5BR5IkSVLKMehIkiRJSjkGHUmSJEkpx6AjSZIkKeUYdCRJkiSlHIOOJEmSpJRj0JEkSZKUcv4frhh0kv8f8iYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pl_lwlr(ex0,0.01)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "d44d76ef8cbbc4331cecfe2e59228ac31ebb71026289858a116838be7168b60b"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
